﻿using Domain.Entities;
using System;
using System.Collections.Generic;

namespace Domain.Repository.Repositories
{
    public interface IGroupRepository
    {
        /*****************************************************************************************
        * Getters
        * ***************************************************************************************/
        IList<Group> GetAll();

        Group GetById(short groupId);

        /*****************************************************************************************
        * Adders
        * ***************************************************************************************/
        Group New(string name, string prefix, string suffix, bool canViewActiveUserlist, bool canViewUserlist, bool canViewProfiles, bool canUseSearch, bool isAdministratorGroup);

        /*****************************************************************************************
        * Updaters
        * ***************************************************************************************/
        void Update(Group group, string name, string prefix, string suffix, bool canViewActiveUserlist, bool canViewUserlist, bool canViewProfiles, bool canUseSearch, bool isAdministratorGroup);

        /*****************************************************************************************
        * Deleters
        * ***************************************************************************************/
    }
}
